//
//  Wheel.hpp   --- Handles wheels
//
#ifndef WHEEL_HPP
#define WHEEL_HPP

#include "filter.hpp"


//
//  A Wheel object supports wheeling functions.
//
class Wheel : public Object
{
public:
    PlayBoard wheelBoard;                       // current wheel playboard
    LNUM    wheelNumbers[ HIGHEST_NUMBER ];
    int     nWheel;
    int     countSelected;     
    int     countShown;
    int     skipCntr[ HIGHEST_NUMBER ];
    BOOL    filteredWheel;                  // TRUE iff wheel is filtered
    Filter  *pFilter;                       // optional filtration
    int     minWheel;
    int     maxWheel;

    Wheel();
    ~Wheel();
    int     isA() { return OBJTYPE_APP; }
    int     wheelSetup();
    int     calculateWheel();
    void    showWheel();    
    BOOL    getWheelNumbers( int startingNumber );
    BOOL    isInList( LNUM aNum );
    BOOL    filterSetup();
    BOOL    isFiltered();                   // rtns TRUE if entry filtered out
};

#endif
